package com.dsiab.manageService.mapper;

import com.dsiab.manageService.entity.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AdminDao {
  // 查询所有数据
  public List<PagesDto> getAll(int pageNo);

  // 后台管理，查当前用户所有数据
  public List<PagesDto> getAllByUsername(@Param("pageNo") int pageNo,@Param("username") String username);

  // 查询当前用户下某分类下数据
  public List<PagesDto> getListByCateByUserId(@Param("cate") int cate,@Param("page") int page,@Param("username") String username);

  // 查询详情
  public PagesDto getDetail(@Param("id") int id);

  // 新增数据
  public boolean insertOne(PagesDto pagesDto);

  // 删除数据
  public boolean delOne(@Param("id") int id,@Param("username") String username);

  // 管理员删除任意一条数据
  public boolean delOneByadmin(@Param("id") int id);

  // 更新数据
  public boolean updateOne(PagesDto pagesDto);

  // 通过文章id查询创建人
  public String getCreateByid(int id);

  // 更新分类
  public boolean updateCate(CateDto cateDto);

  // 删除分类
  public boolean delCate(@Param("id") int id);

  // 新增分类
  public boolean insertCate(CateDto cateDto);

  // 更新阅读量，每次点击+1
  public void updateViews(PagesDto pagesDto);

  // 删除评论
  public boolean delComment(List ids);
  // 批量删除文章
  public boolean batchDelPost(List ids,String username);

  // 获取当前用户所有分类
  public List getCate(String createdBy);

  // 恢复分类
  public boolean revertCate(CateDto cateDto);

  // 新增专题
  public boolean insertTopic(TopicDto topicDto);

  // 获取所有专题
  public List getTopicList();

  // 新增专题详情
  public boolean addPostToTopic(TopicDto topicDto);

  // 获取专题详情
  public List getTopicDetailList(TopicDto topicDto);

  public boolean updateTopic(TopicDto topicDto);

  public boolean deleteTopic(TopicDto topicDto);

  public boolean deleteTopicDetail(TopicDto topicDto);

  // 查询所有已删除数据
  public List<PagesDto> getRecycleAll(int pageNo);

  // 从数据库删除数据
  public boolean deletePost(List ids);

  public void insertMenu(MenuDto menuDto);

  public List getMenuList();

  public List getMenuListByParentId(int menuId);

  public void updateMenu(MenuDto menuDto);

  public void deleteMenu(MenuDto menuDto);

  public void updateRoleName(@Param("roleId") int roleId,@Param("roleName") String roleName);

  public void deleteRoleMenu(int roleId);

  public void insertRoleMenu(@Param("roleId") int roleId,@Param("menuId") int menuId);

  public List getMenuByRole(int roleId);

  public List getMenus(int roleId);

  public List getAllMenusByRole(int roleId);

  public List getRoleIdByUserName(String username);

  public int getRIdByroleId(String roleId);

  public  void addNotice(@Param("title") String title,@Param("content") String content);

  public List getNotice(NoticeDto noticeDto);

  public void approveComment(String id);

  public void recoveryPost(String uid);

  public List<PagesDto> getCurrentDayPost();

  public void updateUid(int id,String uid);

}

